#ifndef __BUOLA_GUI_AUTO_DEFINES_H__
#define __BUOLA_GUI_AUTO_DEFINES_H__

//////////////////// styles for item fields /////////////////
#define ITEM_EDITABLE   0x0001

//////////////// ruler box styles ////////////////
#define RBS_HORIZONTAL      0x00000000
#define RBS_VERTICAL        0x00000100

/////////////////// Tab box style /////////////////////
#define TABBOX_ICON         0x00000100
#define TABBOX_TEXT         0x00000200
#define TABBOX_LEFT         0x00000400
#define TABBOX_RIGHT        0x00000800
#define TABBOX_BOTTOM       0x00001000
#define TABBOX_TOP          0x00002000
#define TABBOX_HIDEIFONE    0x00004000
#define TABBOX_UNDERTB      0x00008000
#define TABBOX_MENULIKE     0x00010000
#define TABBOX_PREFERENCES  0x00020000
#define TABBOX_HIDEIFZERO   0x00040000

/////////////////// tool bar style ///////////////////
#define TB_VERTICAL         0x00001000
#define TB_HORIZONTAL       0x00002000

/////////////////// Label styles ///////////////////
#define LBL_TOP             0x00000100
#define LBL_BOTTOM          0x00000200
#define LBL_LEFT            0x00000400
#define LBL_CENTER          0x00000800
#define LBL_RIGHT           0x00001000
#define LBL_VERT            0x00002000

/////////////////// Combo box styles ///////////////////
#define CB_FREEEDIT         0x80000000

////////////////// Button styles ////////////////////
#define BUTTON_IMAGE        0x00100         //Whole button is an image
#define BUTTON_TEXT         0x00200         //Draw text inside
#define BUTTON_PICTURE      0x00400         //Draw a picture insie
#define BUTTON_SMALL        0x00800         //For scrollbars and comboboxes
#define BUTTON_REPEAT       0x01000
#define BUTTON_TOOLBAR      0x02000         //Border only in hover
#define BUTTON_MICRO        0x04000

#define BUTTON_CONTENTS     (BUTTON_IMAGE|BUTTON_TEXT|BUTTON_PICTURE)

//////////////////// Message box styles //////////////////
#define MBS_OK              0x00100
#define MBS_CANCEL          0x00200
#define MBS_YES             0x00400
#define MBS_NO              0x00800
#define MBS_ERROR           0x01000
#define MBS_INFO            0x02000
#define MBS_WARNING         0x04000

//////////////////// Grip positions /////////////////////
#define GRIP_NORTHWEST      0
#define GRIP_NORTH          1
#define GRIP_NORTHEAST      2
#define GRIP_WEST           3
#define GRIP_EAST           4
#define GRIP_SOUTHWEST      5
#define GRIP_SOUTH          6
#define GRIP_SOUTHEAST      7

////////////////////// List box hit test ///////////////////////
#define LBHT_NONE       0
#define LBHT_REGION     (1<<0)
#define LBHT_SELECT     (1<<1)
#define LBHT_TEXT       (1<<2)
#define LBHT_ICON       (1<<3)
#define LBHT_FIELD      (1<<4)
#define LBHT_EXPAND     (1<<5)

#define LBHT_PARTIAL 1
#define LBHT_TOTAL 2

enum ELayoutFlags
{
    WLAY_DEFAULT=            0,

    WLAY_AFTER=              0x0001,
    WLAY_BEFORE=             0x0002,

    WLAY_BETWEEN=            0x0004,
    WLAY_ARRAY=              0x0008,
    WLAY_AT=                 0x0010,
    WLAY_HORIZ=              0x0020,
    WLAY_VERT=               0x0040,
    WLAY_VISIBLE=            0x0080,
    WLAY_L=                  0x0100,
    WLAY_R=                  0x0200,
    WLAY_T=                  0x0400,
    WLAY_B=                  0x0800,

    WLAY_GROUP=              0x1000,
    WLAY_LINE=               0x2000,
    WLAY_POINT=              0x4000,

    WLAY_SIZE=               0x8000,
    WLAY_DIST=               0x0000,
    WLAY_MARGIN=             0x10000,     //not implemented

    WLAY_LBLLEFT=            0x0,
    WLAY_LBLTOP=             0x20000,
    WLAY_LBLRIGHT=           0x40000,
    WLAY_LBLCENTER=          0x80000,
    WLAY_LBLBOTTOM=          0x100000,
    WLAY_LBLNORESERVE=       0x200000,
    WLAY_LABEL=              0x400000,
    WLAY_FRAME=              0x800000,
};
DECLARE_ENUM_BITOPS(ELayoutFlags)

#define WLAY_NOGROUP            -1

#define BACKGROUND_DEFAULT      0
#define BACKGROUND_TOOLTIP      2

#endif
